Information-centric networks (ICNs) constitute a new networking paradigm in which content is exchanged by means of information addressing. Different architectures may be used to realize ICNs, which may require the partial replacement of current network infrastructure and equipment, such as, for example, routers, gateways and the like, in order to realize the desired network-level functions of these solutions. ICNs may provide improvements to current networking, including, for example, better performance, multicast support, in-network caching, and the like.
Migration scenarios from current network architectures to ICNs foresee that the new architectures may be realized as an overlay over existing architectures, such as for example, Internet Protocol (IP) based or local Ethernet based architectures. Such migration, however, may still require the transition of the user equipment (UE) to an ICN-based solution. With IP-based applications currently providing a broad range of Internet services, transitioning all of these applications may easily be seen as a much harder task than the pure transition of the network-level functionality. Protocol stack implementation in the UE, for example, will require additional functionality in the ICN context. Server-side components, for example, e-shopping web-servers, content servers, and the like, will additionally require new functionality in the ICN context. Further, changes to UEs due to different network protocol stacks may be difficult to implement because upgrades to device operating systems (OS) may be needed. In addition, ICNs may require changes to applications which utilize IP-level abstraction, such as for example sockets to program distributed functionality. In addition to the difficulty of modifications applications, modifications to integrated development environments (IDEs), software development kits (SDKs) and the like may also be required and difficult. Accordingly, one may assume that IP-based services, and with it purely IP-based UEs, will continue to exist for some time to come.
The retrieval from content from a number of IP-based endpoints has been a long-standing problem with a number of solutions, particularly in the peer-to-peer (P2P) networking space. For instance, BitTorrent content is usually pulled from a number of torrent computers, based on the availability of content being managed by so-called torrent sites that provide a sort of directory service for well-known torrent-based content, such as popular video.
In traditional HTTP-based communication, however, the communication between client and server is based on a unicast semantic, i.e., the client sends a request to a particularly server as resolved through the Domain Name Service (DNS), while the server sends the response code (including any resource such as a video or image file) back to the originating client. Reliability of requests and responses are provided by the underlying transport protocol functionality, such as provided by TCP over traditional IP-based networks. On top of such HTTP-based unicast semantic, any application layer protocol could be implemented that utilized the availability of content at different sites in order to retrieve such content, similar to the aforementioned torrent sites (which normally operate directly on top of TCP rather than HTTP).
In addition, network coding is used as a technique to increase efficiency by utilizing information-centric foundations for the encoding of the content so that content can be reconstructed by utilizing the redundancy added through network coding. Hence, by receiving network coded content, the original content can be reconstructed by reversing the computations of the network coding at the receiver side. Such technique can be utilized in many ways. One typical way is that of distributing content to a large number of users, for instance for software updates of operating systems, from a single sender site. Here, so-called fountain coding variants can be used to allow clients to ‘tune into’ the transmissions and restore the original content once they will have received enough information for the restoration of the original file (such as the file for a software update). The solution here is akin to a glass being moved close to a fountain of water, ultimately filling the water by simply staying for long enough close to the fountain—an analogy that motivates the name for this coding technique.
Network coding can also be used for so-called multi-source transmission, similar to the aforementioned Bittorrent content exchange. Hence, content is encoded by all senders according to well-known coding parameters and sent to all clients who may want to receive said content. Client may choose to receive the content from all or only a sub-set of sources, being able to restore the content by simply staying for ‘long enough’ to have received enough information to restore the original content.